function json2s(o) {
	var type = typeof(o);
	if(type == 'number') {
		return o;
	}
	if(type == 'string') {
		return '"' + o + '"';
	}
	if(type == 'boolean') {
		return o;
	}
	if(type == 'undefined') {
		return 'null';
	}
	if(type == 'object') {
		if(o == null) {
			return 'null';
		}
		if(o instanceof Array) {
			var tmps = [];
			o.map(function(e){
				tmps.push(json2s(e));
			});
			return '['+ tmps.join(',') +']';
		}
		var tmps=[];
		for(var prop in o) {
			tmps.push(json2s(prop) + ':' + json2s(o[prop]));
		}
		return '{' + tmps.join(',') + '}';
	}
	return 'null';
}
function s2json(s) {
	return eval('(' + s + ')');
}